#ifndef AVL_H
#define AVL_H

#include <iostream>
#include <assert.h>
#include "Iterable.h"
template <class T>
class AVL:public Iterable<T>{

	public:
		//Constructoras
		virtual void agregar(const T &e) =0;

		//Destructoras
		virtual ~AVL(){}
		virtual void vaciar()=0;
		virtual void borrarArbol() =0;
		virtual void borrarNodo(const T e) =0;
		//virtual Puntero<Iterador<T>> ObtenerIterador() const;
		//Selectoras
		virtual T datoRaiz()=0;

		//Predicados
		virtual const bool esVacio()=0;
		virtual const bool esMiembro(const T &e) =0;

			//Otras
		virtual const void imprimir() =0;
};

#endif